home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C / Utilities / CommentConverter 1.0.0 / Think C 7.0 Project / Test Files / TestFile.b next >
Encoding:
Text File  |  1994-04-27  |  5.5 KB  |  220 lines  |  [TEXT/ttxt]

  1. /*FEHLER:*/
  2. /*- WENN DER FILENAME NICHT RICHTIG IST KOMMT ZWAR DIE MESSAGE, ABER ES WIRD TROTZDEM GEMACHT*/
  3. /*- EOF WIRD GESCHRIEBEN!*/
  4. /*- Beide behoben, NOCHMAL AN ALLEN FILES TESTEN!!!!!*/
  5. /******************************************************************************/
  6. /******************************************************************************/
  7. /******************************************************************************/
  8. /** Modul-Name            : sorry, that´s impossible.C                            **/
  9. /** Autor                : A. Amoroso                                          **/
  10. /** Funktion            : New 2 Old Style Comments                             **/
  11. /** Datum                : 6.12.1993                                              **/
  12. /******************************************************************************/
  13. /******************************************************************************/
  14. /******************************************************************************/
  15.  
  16. #include <ctype.h>
  17. #include <fcntl.h>
  18. #include <float.h>
  19. #include <limits.h>
  20. #include <math.h>
  21. #include <size_t.h>
  22. #include <stat.h>
  23. #include <stdarg.h>
  24. #include <time.h>
  25.  
  26. #include <string.h>
  27. #include <stdlib.h>
  28. #include <stdio.h>
  29. #include <GestaltEqu.h>
  30. #include <Files.h>
  31. #include <TextEdit.h>
  32. #include <Dialogs.h>
  33. #include <types.h>
  34. #include <pascal.h>
  35. #include <Events.h>
  36. #include <EPPC.h>
  37. #include <AppleEvents.h>
  38. #include <OSEvents.h>
  39.  
  40.  
  41. #include "Apple.h"
  42. #include "Help.h"
  43.  
  44. #include "/*<->/**/.h"*/
  45.  
  46. #ifdef testme
  47. #include <console.h>
  48. #endif
  49.  
  50. /******************************************************************************/
  51. /* Hauptprogramm                                  */
  52. /******************************************************************************/
  53.  
  54. int main(int argc, char *argv[])
  55.  
  56. {
  57.     char     NName[MaxFullPathName+1],
  58.             OName[MaxFullPathName+1],
  59.             *occur = NULL,
  60.             stop = 0,            
  61.             c1 = 0,
  62.             c2 = 0,
  63.             c = 0,
  64.             q1 = 0,
  65.             q2 = 0;
  66.     int     i = 0,
  67.             len = 0;
  68.     unsigned long
  69.             typ = 0,
  70.             cre = 0;
  71.     FILE    *Optr = NULL,
  72.             *Nptr = NULL;
  73.     
  74.  
  75. #ifdef apple
  76. #ifndef testme
  77.     argv = GetProgParams(&argc);
  78.     occur = strrchr(*argv, ':');
  79. /*    Nptr = fopen("Modifiers.txt","w");*/
  80. /*    fputs(occur,Nptr);*/
  81. /*    fclose(Nptr);*/
  82. #endif
  83. #endif /* apple */
  84. #ifdef testme
  85.     argc = ccommand(&argv);
  86. #endif
  87.     
  88.     for(i=1; i < argc; i++){
  89.         NName[0] = OName[0] = stop = c1 = c2 = c = q1 = q2 = 0;
  90.         len = 0;
  91.         Optr = NULL;
  92.         Nptr = NULL;
  93.         strcpy((char *)NName, (const char *)*(argv+i));
  94.         strcpy((char *)OName, (const char *)*(argv+i));
  95.         len = (int)strlen((const char *)NName);
  96.         if ((c2 = *(OName + len - 2)) != '.')
  97.             HandleError(NoCFile); 
  98.         if ((c1 = *(OName + len - 1)) == 'c')
  99.             *(NName + len - 1) = 'd';
  100.             else if (c1 == 'C')
  101.                 *(NName + len - 1) = 'D';
  102.                 else if (c1 == 'h')
  103.                     *(NName + len - 1) = 'i';
  104.                     else if (c1 == 'H')
  105.                         *(NName + len - 1) = 'I';
  106.         if ((c1 != 'c') && (c1 != 'C') && (c1 != 'h') && (c1 != 'H'))
  107.             HandleError(NoCFile); 
  108.         Optr = fopen(OName, "r");
  109.         if (Optr == NULL)
  110.             HandleError(FileIO);
  111.         Nptr = fopen(NName, "w");
  112.         if (Nptr == NULL)
  113.             HandleError(FileIO);
  114. /* Folgende while Schleifen sind kommentar erkennender automat, 4 zustaende, 4 Eingaben */
  115.         if (EOF != (c = fgetc(Optr)))
  116.             do{
  117.                 switch(q1){
  118.                     case 0: switch (q2){
  119.                                 case 0:    switch (c){
  120.                                             case SL:    q1 = 1;
  121.                                                         q2 = 0;
  122.                                                         break;
  123.                                             case EOF:    stop = 1;
  124.                                             case CR:    /*break, the same...*/;
  125.                                             default:    q1 = 0;
  126.                                                         q2 = 0;
  127.                                                         if (c != EOF)
  128.                                                             if (EOF == fputc(c,Nptr))
  129.                                                                 HandleError(FileIO);
  130.                                                         break;
  131.                                         }
  132.                                         break;
  133.                                 case 1:    switch (c){
  134.                                             case EOF:    stop = 1;
  135.                                             case CR:    q1 = 0;
  136.                                                         q2 = 0;
  137.                                                         if (EOF == fputs("*/\n",Nptr))
  138.                                                             HandleError(FileIO);
  139.                                                         break;
  140.                                             case SL:    /*break, the same...*/;
  141.                                             default:    q1 = 0;
  142.                                                         q2 = 1;
  143.                                                         if (c != EOF)
  144.                                                             if (EOF == fputc(c,Nptr))
  145.                                                                 HandleError(FileIO);
  146.                                                         break;
  147.                                         }
  148.                                         break;
  149.                             }
  150.                             break;
  151.                     case 1: switch (q2){
  152.                                 case 0:    switch (c){
  153.                                             case SL:    q1 = 0;
  154.                                                         q2 = 1;
  155.                                                         if (EOF == fputs("/*",Nptr))
  156.                                                             HandleError(FileIO);
  157.                                                         break;
  158.                                             case EOF:    stop = 1;
  159.                                             case CR:    /*break, the same...*/;
  160.                                             default:    q1 = 0;
  161.                                                         q2 = 0;
  162.                                                         if (EOF == fputs("/",Nptr))
  163.                                                             HandleError(FileIO);
  164.                                                         if (c != EOF)
  165.                                                             if (EOF == fputc(c,Nptr))
  166.                                                                 HandleError(FileIO);
  167.                                                         break;
  168.                                         }    
  169.                                         break;
  170.                                 case 1:    switch (c){
  171.                                             case SL:    /*break, the same...*/;
  172.                                             case EOF:    stop = 1;
  173.                                             case CR:    /*break, the same...*/;
  174.                                             default:    q1 = 0;
  175.                                                         q2 = 0;
  176.                                                         HandleError(IllState);
  177.                                                         break;
  178.                                         }
  179.                                         break;
  180.                             }
  181.                             break;
  182.                 }
  183.                 c = fgetc(Optr);
  184.             }while (!stop);
  185.     if (EOF == fclose(Optr))
  186.         HandleError(FileIO);
  187.     if (EOF == fclose(Nptr))
  188.         HandleError(FileIO);
  189.         GetFileInfo(OName,&typ,&cre);
  190.         SetFileInfo(NName,typ,cre);
  191.         GetFileInfo(OName,&typ,&cre); /* Soll den Finder veranlassen das neue Icon zu zeigen...*/
  192. /*        SetFileInfo(NName,'TEXT','KAHL');*/
  193.     }
  194.     GenExit(0);
  195. }
  196.  
  197. void HandleError(int error)
  198. {
  199.     short itemHit = 0;
  200.     
  201.     switch(error){
  202.         case    1:    do
  203.                     {
  204.                         itemHit = StopAlert(rNoCFile,nil);
  205.                     }while(itemHit != dOKButton);
  206.                       break;
  207.           case    2:    do
  208.                     {
  209.                         itemHit = StopAlert(rFileIO,nil);
  210.                     }while(itemHit != dOKButton);
  211.                       break;
  212.           case    3:    do
  213.                     {
  214.                         itemHit = StopAlert(rIllState,nil);
  215.                     }while(itemHit != dOKButton);
  216.                       break;
  217.           default:    GenExit(0);
  218.     }
  219.     GenExit(0);
  220. }